package com.tianji.learning.service;

import com.tianji.common.domain.dto.PageDTO;
import com.tianji.learning.domain.dto.NoteDTO;
import com.tianji.learning.domain.po.Note;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tianji.learning.domain.query.AdminNoteQuery;
import com.tianji.learning.domain.query.NoteQuery;
import com.tianji.learning.domain.vo.AdminNotePageVO;
import com.tianji.learning.domain.vo.NoteDetailVO;
import com.tianji.learning.domain.vo.NotePageVO;

/**
 * <p>
 * 笔记记录表 服务类
 * </p>
 *
 * @author hrz
 * @since 2025-09-04
 */
public interface INoteService extends IService<Note> {

    void addNote(NoteDTO noteDTO);

    void gatherNote(Long id);

    void deleteGatheredNote(Long id);

    void updateNote(Long id, NoteDTO noteDTO);

    void deleteMyNote(Long id);

    PageDTO<NotePageVO> getNote(NoteQuery noteQuery);

    PageDTO<AdminNotePageVO> getAdminNotePage(AdminNoteQuery query);

    void hiddenNote(Long id, Boolean hidden);

    NoteDetailVO getNoteDetail(Long id);
}
